package com.vogue.supplymall.order.domain.biz;

import java.math.BigDecimal;

import com.vogue.supplymall.payment.dto.IResultParameter;
import com.vogue.supplymall.payment.dto.MultiplePayInputParameter;
import com.vogue.supplymall.payment.dto.SinglePayInputParameter;

/**
 * 线上支付业务处理
 * @author cy
 */
public interface OrderPayOnlineBiz {

    /**
     * 线上支付
     * @param paymode 支付方式 0:线下 1:吾享(商龙云钱包) 2:微信 3:支付宝 4:预付货款
     * @param paytypeid 吾享接口支付方式（5：闪惠 6：微信 7：百度钱包 8：支付宝 20：商龙云钱包）
     * @param orderid 订单id
     * @param redirectUrl 支付成功返回的url（只有商龙云钱包支付方式需要）
     * @return 支付结果
     */
    public IResultParameter orderPayOnline(Integer paymode, Integer paytypeid, Long orderid, String redirectUrl);
    
    /**
     * 线上支付
     * @param paymode 支付方式 0:线下 1:吾享(商龙云钱包) 2:微信 3:支付宝 4:预付货款
     * @param orderid 订单id
     * @param redirectUrl 支付成功返回的url（只有商龙云钱包支付方式需要）
     * @param amount 支付金额（自己指定）
     * @return 支付结果
     */
    public IResultParameter orderPayOnline(Integer paymode, Integer paytypeid, Long orderid, String redirectUrl, BigDecimal amount);
    
    /**
     * 多单合并支付
     * @param multiplePayInputParameter 封装的订单数据
     * @return 支付结果
     */
    public IResultParameter mergePayOnline(MultiplePayInputParameter multiplePayInputParameter);
    
    /**
     * 单笔支付
     * @param singlePayInputParameter 封装的订单数据
     * @return 支付结果
     */
    public IResultParameter singlePayOnline(SinglePayInputParameter singlePayInputParameter);
}
